草庐IT

SQL ALTER TABLE 语句

全部标签

mysql - 为什么我的带有 ORDER BY 的 MySQL SELECT 语句这么慢,即使列上有 INDEX?

我有一个movies表。它有130万行。该表在title列上有一个INDEX,顺序为asc,长度为255。title列本身是一个VARCHAR(1000)。即使使用该设置,以下查询也需要8秒才能运行。关于为什么会这样,有人在黑暗中有想法或镜头吗?我很困惑,因为这似乎是一个需要解决的基本问题。SELECTtitleFROMmoviesORDERBYtitleLIMIT150000,50000当我取出ORDERBY时,查询速度超快(0.05秒):SELECTtitleFROMmoviesLIMIT150000,50000 最佳答案 编辑

php - if else语句与mysql表? - PHP

我需要做一个ifelse语句来阻止用户出价最高的项目。我认为它会像这样。if($accountid=theaccountidinthebidhistorytable){echo"Youarethehighestbidder!";}else{$sql="INSERTINTObidhistory(accountid,biditemid)VALUES($accountid,$itemid)";mysql_query("UPDATEbidhistorySETbidprice=bidprice+1WHEREbiditemid=".@mysql_escape_string($itemid));$r

php - Zend Framework 2 中的 SUBSTRING()/MID() 语句

我正在尝试实现以下非常简单的查询:WHEREa.first_tableISNULLANDa.second_tableISNOTNULLANDSUBSTRING(b.third_table,5,2)=@plan_year;正如您可能猜到的,前两个陈述并不是真正的问题。我目前无法通过Zend实现SUBSTRING(),因为我想保持代码DB-System中立。有什么办法可以做到这一点吗?谢谢 最佳答案 如何使用SUBSTR而不是SUBSTRING?WHEREa.first_tableISNULLANDa.second_tableISNOT

php - 限制偏移量大于实际记录的mysql select语句

我创建了一个mysql语句,使用LIMITx,n对结果进行分页(其中x是偏移量,n是返回的条目).偏移量是使用GET-Vars以page=x的形式创建的。现在Google的索引中有一些来自旧抓取的奇怪条目,其中页面变量超过了结果集中记录的实际数量。意思是,使用page变量创建的查询结果类似于LIMIT1000,30-但查询只会返回900条目(因为表的内容同时发生了变化。当然,这会返回一个空的结果集。有没有办法告诉mysql,如果偏移量超过返回的记录,则只显示最后一个可能的结果集?我不想首先使用COUNT()进行额外的查询,因为这会使mysql-server的负载加倍(现在我正在使用SQ

php - 你能在MYSQL语句中做if/else逻辑吗?

我的数据库中有足球运动员。他们每个人都有一个排名(1是最好的),我在MYSQL查询中即时计算他们的年龄。该查询使用他们的排名加上他们的年龄进行ORDERBY。所以我首先有这个...$rankquerytext="ranking+age";然后我有查询...$sql="SELECT*,FLOOR(DATEDIFF(CURDATE(),born)/365.25)ASageFROMplayersORDERBY".$rankquerytext."";这很好用。但是,我想更具体一点,而不是仅仅将他们的年龄添加到他们的排名中。例如,我更愿意以某种方式在MySQL查询中或就在它之前执行if/else

php - mySQL 语句的第一个词不能是 DELETE 或 UPDATE

我目前正在写一个查询数据库的页面,而不是使用命令行(它只是为了练习PHP如何与整个数据库交互)。现在,我正在尝试限制删除或更新数据,即没有DELETE、DROP或UPDATE语句。修剪所有空格(包括\r和\s等)后,仅扫描第一个单词以确定它是什么类型的查询就足够了吗?换句话说,是否可以编写DELETE、DROP或UPDATE查询而不将它们作为修剪空格后的第一个词?我目前正在使用mysqli_query,因此无法执行多个查询。编辑1:添加相关代码@Tim。$queryCheck=strtolower($query);$queryCheck=preg_replace("/\s+/","",

php - 在 select 语句中确定字符串的优先级

我有一个select语句,如果一个字符串包含下面的任何单词,它会选择它,但它不会按照单词包含的顺序选择它。例如,如果数据库中的字符串是“三二一”,而不是“一二三”,它无论如何都会选择它。我想做到这一点,以便它首先按照字符串的顺序排列优先级,然后再尝试获取那些不符合该顺序的字符串。这可能吗?$text1="one";$text2="two";$text3="three";SELECTtext,((textLIKE'%$text1%')+(textLIKE'%$text2%')+(textLIKE'%$text3%'))as`matches`FROMtableNameHAVING`matc

php - 阿拉伯文本在 php/mysql 中有时会出现 “???” 有时会在 select/insert 语句后出现 "ÙØ¤ØªØ§"

我有一个正在进行的项目,我需要从mysql表中获取阿拉伯语文本,并时常插入/更新它们。我在“utf8_general_ci”中有我的数据库排序规则。一开始我发现问号“???”在获取一些阿拉伯数据后。然后我执行了“SETCHARACTERSETutf8”。该特定问题的问号问题已解决,但随后其他阿拉伯语数据开始显示乱码“ÙØ¤ØªØ§”。在项目中,我还需要从包含阿拉伯文本的csv中获取一些数据。这里是我查到的charset执行前后的json数据:[{"id":148,"domain":0,"group_name":"ATX??????????","score":0,"player_name

php - MYSQL SELECT Group By 语句

产品表:ProductID|Manufacturer|PartNo|Name-----------------------------------------------------------------770593|GBC|EB100000|GBC(30inch)IDNeckChain-1xPackof100NeckChains775308|Elba|100080883|ElbaVision(A5)RingBinder801982|Elba|100080883|ElbaVision(A5)RingBinder匹配的SKU表:SupplierSKUID|ProductID------

MySQL JOIN 语句按选定的链接属性过滤行

假设我有以下两个MySQL表:项目:_ID,_CAT_ID,...item_attribute:_ID,_ITEM_ID,...我想(过滤项目)只获得具有所有选定属性(1,32,555,...选定属性的数组)的项目像这样:SELECT_I.*FROMitem_IINNERJOINitem_attribute_IAON(_I._ID=_IA._ITEM_IDAND(_IA._ID=1OR_IA._ID=132,...))WHERE_I._CAT_ID=?ORDERBY_I._LAST_UPDATEASC;"此“错误”语句在找到一个(由于OR)链接ID时返回项目,我想要的是:只有具有所有链